#-*- coding: utf8 -*-

from tutor.script import *
from tutor.plugin.maple import *

# meta information
meta(author       = 'Fábio Mendes',
     creationdate = datetime(2010, 10, 9),
     status       = 'testing',
     difficulty   = 'easy',
     time         = 10,
     itemtype     = 'test')

# seleciona pontos
m = oneof(1, 2, 3, 4, 6, 8) / M(2)
n = oneof(1, 2, 3, 4, 6, 8) / M(2)
a = oneof(1, 2, 3, 4, 6, 8) / M(2)
b = oneof(1, 2, 3, 4, 6, 8) / M(2)
m, n = min(m, n), max(m, n)
assert a != b
assert n != m
print('m=%s, n=%s, a=%s, b=%s' % (m, n, a, b))

# define ponto de intersecção
ptx = M.simplify((b/a)**(M(1)/(n - m)))
pty = M.simplify(a * ptx**n)
ya = a * x**n
yb = b * x**m
xa = (y/a)**(1/n)
xb = (y/b)**(1/m)
assert pty != 1

question('Inverta a ordem de integração de \n\n'
         '$$\\int_{0}^{#1} dx \\int_{#2}^{#3} dy\\ f(x,y).$$', ptx, ya, yb)
multiplechoice()

intyx = '$\\int_{#1}^{#2} dy \\int_{#3}^{#4} dx\\ f(x,y)$'

# choice: (a)
choice(1, intyx, 0, pty, xb, xa)
explanation('Escolha correta!') 

# choice: (b)
choice(0.25, intyx, 0, pty, xa, xb)
explanation('Limites de integração trocados para $x$.') 

# choice: (c)
choice(0, intyx, 0, pty, 0, ptx)
explanation('Integração feita sobre um quadrado.') 

# choice: (d)
choice(0, intyx, 0, ptx, xa, xb)
explanation('Limites de integração trocados para $x$. Utilizou a componente $x$'
            'do ponto de interseção na integral em $y$.')

# choice: (e)
choice(0, intyx, 0, ptx, M.subs(x==y, ya), M.subs(x==y, yb))
explanation('Simplesmente trocou $x$ por $y$ na integral. Isso não funciona.')
 

end()